<?php
 /**
* @package   auto_occasion
* @subpackage commun
* @author    CMS
* @copyright 2011
* @license    All rights reserved
*/

/**
 * Toutes ces options ont une durée limitée. Il faudra donc enregistrer la date d’achat et la durée de l’option pour
 * chaque annonce. Quand la durée de l’option est dépassée, on supprime l’option de l’annonce. Cette suppression se fera par tâche CRON.
 */
class cronremoveoptionfromadvertCtrl extends jControllerCmdLine {
 
    function index() {
        if ( array_key_exists('REMOTE_ADDR', $_SERVER) )
            die("Can only be run from the command line!");

        $rep = $this->getResponse(); // cmdline response by default
        jClasses::inc('commun~common');
        jClasses::inc('annonce~annonceFormuleSrv');
        try {
            // récuperer la durée de validité des options
            $options = common::liste('ao_option_formule_choix');

            // création d'un tableau associatif : option=>duree
            if (sizeof($options)) {
                $tab = array();
                foreach ($options as $item) {
                    if ($item->formch_duree) {
                        $tab["$item->formch_id"] = $item->formch_duree;
                    }
                }
                // pour chaque annonce, checker la durée de leur options, si périmé % date du jour alors remove option.
                $annonce = common::liste('ao_annonce_formule_achat');
                if (sizeof($annonce)) {
                    foreach ($annonce as $advert) {
                        if ($advert->idOption) {
                            $validite = annonceFormuleSrv::checkValiditeOption ($tab[$advert->idOption], $advert->dateAchat);
                            if (!$validite) {
                                // supprimer ds la table ao_annonce_formule_achat
                                annonceFormuleSrv::deleteAchat($advert->idOccasion, $advert->idOption);

                                // supprimer ds la table ao_annonce_formule
                                $optionPresente = annonceFormuleSrv::getAnnonceChoix($advert->idOccasion);
                                $tabOpt         = explode(',', $optionPresente);
                                if (sizeof($tabOpt)) {
                                    foreach ($tabOpt as $j=>$itemOpt) {
                                        if ((int)$itemOpt == (int)$advert->idOption) {
                                            unset($tabOpt[$j]);
                                        }
                                    }
                                    annonceFormuleSrv::updateOptAfterRmv($advert->idOccasion, $tabOpt);
                                }
                            }
                        }
                    }
                }
            }
            
        } catch (exception $e) {
            echo $e->getMessage();
        }
        echo 'OK - remove option from adert when passed date   ' . date("Y-m-d h:i:s");

        return $rep;

    }
}
